package com.hualude.roadsign.service;

import com.hualude.roadsign.dto.DTRequestDto;
import com.hualude.roadsign.dto.DTResponseDto;
import com.hualude.roadsign.dto.OrgDto;

import java.util.List;

/**
 * Created by xu-jiaHui on 2017/2/25.
 */
public interface OrgService {
    /**
     * @Description: 用于公司信息的DT显示
     * @Author: xu-jiaHui
     * @Date: 2017/2/25 18:29
     */
    public DTResponseDto getOrg4DT(DTRequestDto dtRequestDto, Integer orgType, Integer orgId) throws Exception;

    /**
     * @Description: 添加公司
     * @Author: xu-jiaHui
     * @Date: 2017/2/26 0:22
     */
    public Integer addOrg(OrgDto orgDto) throws Exception;

    /**
     * @Description: 根据Id更新公司信息
     * @Author: xu-jiaHui
     * @Date: 2017/2/26 12:43
     */
    public Integer updateOrgById(OrgDto orgDto) throws Exception;

    /**
     * @Description: orgState=1启用 =0停用  公司
     * @Author: xu-jiaHui
     * @Date: 2017/2/26 19:39
     */
    public Integer deactivateOrgByIds(String orgIds, Integer orgState) throws Exception;


    /**
     * @Description: 获取主管单位的Id和名字
     * @Author: shao-yikun
     * @Date: 2017/3/5 12:56
     */
    public List<OrgDto> getMainOrgNameAndId(Integer orgId) throws Exception;

    /**
     * @Description: 获取所有公司名称和id
     * @Author: xu-jiaHui
     * @Date: 2017/4/10 19:19
     */
    public List<OrgDto> getOrgNameAndId() throws Exception;


    /**
     * @Description: 通过orgId获取父公司
     * @Author: xu-jiaHui
     * @Date: 2017/4/9 21:59
     */
    public String getOrgFatherNameByOrgId(Integer orgId) throws Exception;

    /**
     * @Description: 获取指定OrgId的候选主管单位
     * @Author: xu-jiaHui
     * @Date: 2017/4/11 21:42
     */

    public DTResponseDto getCandidateMainOrgIdAndNameByOrgId(DTRequestDto dtRequestDto, Integer orgId) throws Exception;

    /**
     * @Description: 获取指定OrgId的候选主管单位
     * @Author: xu-jiaHui
     * @Date: 2017/4/12 17:54
     */
    public DTResponseDto getMainOrgIdAndNameByOrgId(DTRequestDto dtRequestDto, Integer orgId) throws Exception;


    /**
     * @Description: 为指定OrgId分配主管单位
     * @Author: xu-jiaHui
     * @Date: 2017/4/12 21:14
     */

    public Integer addMainOrg4OrgId(Integer orgId, Integer mainOrgId) throws Exception;

    /**
     * @Description: 删除指定OrgId的监管单位
     * @Author: xu-jiaHui
     * @Date: 2017/4/12 21:16
     */

    public Integer deleteMainOrgByIds(Integer orgId, Integer mainOrgId) throws Exception;

    /**
     * @Description: 获取指定OrgId的关系单位
     * @Author: xu-jiaHui
     * @Date: 2017/4/27 14:09
     */
    public List<String> getOrgNameByOrgId(Integer orgId, Integer orgType) throws Exception;

    /**
     * @Description: 获取名字相同的公司的个数
     * @Author: xu-jiaHui
     * @Date: 2017/5/1 0:09
     */
    public Integer getCountByOrgName(String orgName) throws Exception;

    /**
     * @Description: 删除公司
     * @Author: xu-jiaHui
     * @Date: 2017/5/1 23:20
     */
    public Integer deleteOrgByOrgId(Integer orgId) throws Exception;

    /**
     * @Description: 添加页面
     * @Author: shao-yikun
     * @Date: 2017/7/23 下午3:32
     */
    public Integer addMenu(OrgDto orgDto) throws Exception;

    /**
     * @Description: 获取页面
     * @Author: shao-yikun
     * @Date: 2017/7/24 下午12:03
     */
    public String getOrgMenu(Integer orgId) throws Exception;

}
